Skip to content

feat: add lintstaged icons#2794

Merged
PKief merged 1 commit intomainfrom
feat/lint-staged-icons
Aug 18, 2025
Merged

feat: add lintstaged icons#2794
PKief merged 1 commit intomainfrom
feat/lint-staged-icons

Conversation

@PKief
Copy link
Copy Markdown
Member

@PKief PKief commented Jan 6, 2025

Description

Add lintstaged support

Icon is based on lintstaged avatar: https://github.com/lint-staged

.lintstagedrc
.lintstagedrc.json
.lintstagedrc.yaml
.lintstagedrc.yml
.lintstagedrc.mjs
lint-staged.config.mjs
.lintstagedrc.cjs
lint-staged.config.cjs
lint-staged.config.js
.lintstagedrc.js

Recreate #2246

Follow up of #2773.

Contribution Guidelines

@github-actions github-actions bot added the icons PR with new icons label Jan 6, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 6, 2025

Preview

Thank you for creating a pull request. This preview shows you how your icon will look on the different themes:

Generated preview

Check how your icon fits in a 16x16 grid with our Pixel Perfect Checker by following this link.

You can find more information on how to contribute in the contribution guidelines.

@PKief PKief mentioned this pull request Jan 6, 2025
2 tasks
@tiagoporto
Copy link
Copy Markdown
Contributor

Hi @okineadev, following previous discussion.
I've created 2 options:

icon vscode
Screenshot 2025-01-07 at 10 57 23 PM Screenshot 2025-01-07 at 10 54 51 PM
Screenshot 2025-01-07 at 10 56 52 PM Screenshot 2025-01-07 at 10 56 16 PM

Should I refine one of them or should we abandon this PR?

@PKief it looks like I don't have permission to push to this branch.

@okineadev
Copy link
Copy Markdown
Contributor

Hi @okineadev, following previous discussion.
I've created 2 options:

icon vscode
Screenshot 2025-01-07 at 10 57 23 PM Screenshot 2025-01-07 at 10 54 51 PM
Screenshot 2025-01-07 at 10 56 52 PM Screenshot 2025-01-07 at 10 56 16 PM

Should I refine one of them or should we abandon this PR?

@PKief it looks like I don't have permission to push to this branch.

Looks cool, but we need a sign 🚫 over the hand

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 8, 2025

@PKief it looks like I don't have permission to push to this branch.

I've send you an invite for editing the branch. Please check your notifications to accept the invitation.

@tiagoporto
Copy link
Copy Markdown
Contributor

@okineadev wdyt?

Copy link
Copy Markdown
Contributor

@okineadev okineadev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks cool, but you still need 1 pixel spacing from the edges, and I also think it's better to make the hand shorter, because it looks kind of long (vertically)

@tiagoporto tiagoporto force-pushed the feat/lint-staged-icons branch from 696d801 to 9579cba Compare January 8, 2025 23:02
@tiagoporto
Copy link
Copy Markdown
Contributor

It looks cool, but you still need 1 pixel spacing from the edges, and I also think it's better to make the hand shorter, because it looks kind of long (vertically)

@okineadev, the icon is updated with suggestions.

@tiagoporto tiagoporto requested a review from okineadev January 9, 2025 03:54
@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 9, 2025

I'm not super happy with it tbh. I think it would be worth thinking about more options here. Many people and projects use this icon and it has much visibility. We even have the chance of creating a new logo for them if it might look good: lint-staged/lint-staged#606 (comment). What if we think of something new?

Even other icon extension maintainers think that this icon is literally sh*t 😂
vscode-icons/vscode-icons#1764 (review)

Edit: more details on this:
I know that we already changed it (without using that s... icon) but still, I'm not fully satisfied. We're still combining two different icons (the cancel icon and the hand). We're using two different colors. In total this makes the icon little bit more complicated to recognize. Ideally we would have something which is good to recognize and in a single color.

One suggestion would be to design it in this pattern. Having a cancel icon on top of another symbol but cutting the background symbol to give it enough space:

image

I'm open for different suggestions too. Once I've little more time I'll try to elaborate on this too.

@PKief PKief marked this pull request as draft January 9, 2025 11:25
@okineadev
Copy link
Copy Markdown
Contributor

okineadev commented Jan 9, 2025

I'm not super happy with it tbh. I think it would be worth thinking about more options here. Many people and projects use this icon and it has much visibility. We even have the chance of creating a new logo for them if it might look good: lint-staged/lint-staged#606 (comment). What if we think of something new?

Even other icon extension maintainers think that this icon is literally sh*t 😂 vscode-icons/vscode-icons#1764 (review)

Edit: more details on this: I know that we already changed it (without using that s... icon) but still, I'm not fully satisfied. We're still combining two different icons (the cancel icon and the hand). We're using two different colors. In total this makes the icon little bit more complicated to recognize. Ideally we would have something which is good to recognize and in a single color.

One suggestion would be to design it in this pattern. Having a cancel icon on top of another symbol but cutting the background symbol to give it enough space:

image

I'm open for different suggestions too. Once I've little more time I'll try to elaborate on this too.

I have an idea to use the bug icon, although I don't know if it will be appropriate, because lint-staged hardly protects against bugs, it rather lints the code

image

UPD: Link: https://fonts.google.com/icons?selected=Material+Symbols+Rounded:bug_report:FILL@1;wght@400;GRAD@0;opsz@20&icon.query=virus&icon.style=Rounded&icon.size=16&icon.color=%23e8eaed

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 14, 2025

@lucas-labs I just wanted to ping you in case you haven't seen this already. Maybe you have already thought about this and created something in your fork already. Lint-staged is quite popular, so it would be cool if we can have a special icon for it. I didn't have the time yet to get into creativity 😅 Just in case you have some spare time and would like to tackle a challenge, here we go 😉 But no worries, if that isn't the case, it's also fine.

@mallowigi
Copy link
Copy Markdown

FYI, I created this icon: https://raw.githubusercontent.com/AtomMaterialUI/iconGenerator/ec25f005bd54621390955f52b774e2afb59c52e8/assets/icons/files/lint-staged.svg

Represents a broom, for cleaning the lint (don't recommend the color though, I should probably change it)

@okineadev
Copy link
Copy Markdown
Contributor

FYI, I created this icon: AtomMaterialUI/iconGenerator@ec25f00/assets/icons/files/lint-staged.svg (raw)

Represents a broom, for cleaning the lint (don't recommend the color though, I should probably change it)

Why does it look like a tail 😭

@okineadev
Copy link
Copy Markdown
Contributor

How about the lint roller icon?

@mallowigi
Copy link
Copy Markdown

FYI, I created this icon: AtomMaterialUI/iconGenerator@ec25f00/assets/icons/files/lint-staged.svg (raw)
Represents a broom, for cleaning the lint (don't recommend the color though, I should probably change it)

Why does it look like a tail 😭

I'm not fond of the icon either, there are better suited icons to represent a broom, like https://fonts.google.com/icons?icon.style=Outlined&icon.query=sweep&icon.set=Material+Symbols&selected=Material+Symbols+Outlined:mop:FILL@0;wght@400;GRAD@0;opsz@24&icon.size=24&icon.color=%23e8eaed

Now I remember why it's brown..................

@tiagoporto
Copy link
Copy Markdown
Contributor

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 15, 2025

What do you think about this format paint icon?
https://pictogrammers.com/library/mdi/icon/format-paint

@okineadev
Copy link
Copy Markdown
Contributor

What do you think about this format paint icon? pictogrammers.com/library/mdi/icon/format-paint

No, because it does not represent linting or anything related to it, as you can see it is a roller, and it is for drawing, and such an icon is already used for Renovate

@okineadev
Copy link
Copy Markdown
Contributor

I have not seen such lint rollers as on the icon, except for the following:

@okineadev
Copy link
Copy Markdown
Contributor

@PKief, maybe we should call someone from https://github.com/lint-staged/lint-staged ?
Since we have the opportunity to create a project icon

We can write to lint-staged/lint-staged#606

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 15, 2025

@PKief, maybe we should call someone from https://github.com/lint-staged/lint-staged ?
Since we have the opportunity to create a project icon

We can write to lint-staged/lint-staged#606

yeah but we should come with a few proposals. So that's what we are discussing here first.

@tiagoporto
Copy link
Copy Markdown
Contributor

I was doing some brainstorming, we also could use a shield and mix it with another icon.

lint-staged

@tiagoporto
Copy link
Copy Markdown
Contributor

Also, I was playing with the lint roller idea

lint-staged

@okineadev
Copy link
Copy Markdown
Contributor

Also, I was playing with the lint roller idea

lint-staged

No, it should be minimalist and Material Design style.

@tiagoporto
Copy link
Copy Markdown
Contributor

No, it should be minimalist and Material Design style.

I thought we were working on an icon suggestion for lint-staged lib. After it can be converted to a material icon theme.

Based on this comment:

yeah but we should come with a few proposals. So that's what we are discussing here first.

I suggest @PKief and @okineadev be on the same page because I have worked on an icon for a few days, and now we have a PR that is approved and blocked at the same time. I don't know how to proceed.

@okineadev
Copy link
Copy Markdown
Contributor

Okay, I'll try to draw my own version of the icon later

@tiagoporto
Copy link
Copy Markdown
Contributor

What's the point of making 2 different icons?

I'm dedicating my time and trying to help. Let's be nice!

I noticed that some icons are not the official ones, so what is the problem to have a simplified version here?

oficial material icon theme
stryker (1) stryker
https://stryker-mutator.io/images/stryker.svg https://github.com/material-extensions/vscode-material-icon-theme/blob/main/icons/stryker.svg

@tiagoporto
Copy link
Copy Markdown
Contributor

@PKief, more ideas.

lint-staged_Artboard 2
lint-staged-01

@okineadev
Copy link
Copy Markdown
Contributor

What's the point of making 2 different icons?

I'm dedicating my time and trying to help. Let's be nice!

I noticed that some icons are not the official ones, so what is the problem to have a simplified version here?

oficial material icon theme
stryker (1) stryker
stryker-mutator.io/images/stryker.svg main/icons/stryker.svg

Well, look, if we make a good icon in Material Design and they accept it, why would we make a more complicated icon

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 16, 2025

Well, look, if we make a good icon in Material Design and they accept it, why would we make a more complicated icon

Can we focus on ideas now please? I don't want to read more comments about "do we need 1 or 2 icons". Please add your own ideas and then we can decide what we're doing. If you have a nice idea for one icon which would fit as a logo as well, please post it here. One icon would be beneficial - that's it. Now ideas (only) and no judging please :D

@lucas-labs
Copy link
Copy Markdown
Member

lucas-labs commented Jan 17, 2025

... Maybe you have already thought about this and created something in your fork already.

Nope I haven't done this one for my fork either.

I kinda like the ww2 german granade lint roller idea. Although, as I'm not native english speaker, I don't really know if people really associates code linters with a lint roller. But I like it.

@okineadev

This comment was marked as off-topic.

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Jan 18, 2025

The roller idea is nice, however I think the logo should express lint-staged's nature of blocking some staged files from being proceeded. In one of my projects we're using it also to run unit tests, which wouldn't be perfectly covered by the roller right? That's why I came up with these proposals:

image

A

Shows a shield with two colors behind an exclamation mark. The red and green colors express the behavior of lint-staged's security gates, that for instance some steps are green and others are red. The exclamation mark is expressing the power of lint-staged to stop a whole process if something is throwing an error.

B

It shows a bunch of circles which are expressing the different file patterns and quality gate steps which you can define in a lint-staged config file. The red circle in the middle expresses a failing lint stage step. It's surrounded by an abstract cross which highlights the middle circle.

C

A very minimalistic proposal. It shows a magnifier on top of a green shield. The shield expresses lint-staged's nature of protecting files from beeing committed after staging. The magnifier expresses the search for mistakes and errors in the staged files.

D

This proposal focuses on the staging by showing a "+" symbol in front of a shield. The shield again expresses lint-staged's nature of blocking files from being committed.

E

Instead of a shield this one is more about the positive way, if checks are successful, things can be merged / proceeded.

Note

These are just some ideas which still should be refined.

@okineadev
Copy link
Copy Markdown
Contributor

The roller idea is nice, however I think the logo should express lint-staged's nature of blocking some staged files from being proceeded. In one of my projects we're using it also to run unit tests, which wouldn't be perfectly covered by the roller right? That's why I came up with these proposals:

image

A

Shows a shield with two colors behind an exclamation mark. The red and green colors express the behavior of lint-staged's security gates, that for instance some steps are green and others are red. The exclamation mark is expressing the power of lint-staged to stop a whole process if something is throwing an error.

B

It shows a bunch of circles which are expressing the different file patterns and quality gate steps which you can define in a lint-staged config file. The red circle in the middle expresses a failing lint stage step. It's surrounded by an abstract cross which highlights the middle circle.

C

A very minimalistic proposal. It shows a magnifier on top of a green shield. The shield expresses lint-staged's nature of protecting files from beeing committed after staging. The magnifier expresses the search for mistakes and errors in the staged files.

D

This proposal focuses on the staging by showing a "+" symbol in front of a shield. The shield again expresses lint-staged's nature of blocking files from being committed.

E

Instead of a shield this one is more about the positive way, if checks are successful, things can be merged / proceeded.

Note

These are just some ideas which still should be refined.

The roller idea is nice, however I think the logo should express lint-staged's nature of blocking some staged files from being proceeded. In one of my projects we're using it also to run unit tests, which wouldn't be perfectly covered by the roller right? That's why I came up with these proposals:

image

A

Shows a shield with two colors behind an exclamation mark. The red and green colors express the behavior of lint-staged's security gates, that for instance some steps are green and others are red. The exclamation mark is expressing the power of lint-staged to stop a whole process if something is throwing an error.

B

It shows a bunch of circles which are expressing the different file patterns and quality gate steps which you can define in a lint-staged config file. The red circle in the middle expresses a failing lint stage step. It's surrounded by an abstract cross which highlights the middle circle.

C

A very minimalistic proposal. It shows a magnifier on top of a green shield. The shield expresses lint-staged's nature of protecting files from beeing committed after staging. The magnifier expresses the search for mistakes and errors in the staged files.

D

This proposal focuses on the staging by showing a "+" symbol in front of a shield. The shield again expresses lint-staged's nature of blocking files from being committed.

E

Instead of a shield this one is more about the positive way, if checks are successful, things can be merged / proceeded.

Note

These are just some ideas which still should be refined.

I like the C icon the most because, unlike the others, it doesn't represent "good" or "bad", it means "need to check"

The idea behind the B icon is really cool, but it's too complicated and it's hard to intuitively understand its meaning

@tiagoporto
Copy link
Copy Markdown
Contributor

Option C. (Maybe replace the color)

@PKief PKief linked an issue Feb 10, 2025 that may be closed by this pull request
3 tasks
This was referenced Aug 12, 2025
@ViniDevBR

This comment was marked as spam.

@ViniDevBR

This comment was marked as spam.

@ViniDevBR
Copy link
Copy Markdown
Contributor

why we dont the original icon from lib??
this works in dark and light mode

icon lint-staged

@tiagoporto
Copy link
Copy Markdown
Contributor

Hi @ViniDevBR, you could read more on #2773, the other guys don't like the original one. We were trying a new icon.
No success until now as you can see.

@zyycn
Copy link
Copy Markdown

zyycn commented Aug 14, 2025

I think we can release a version based on the official icon first, and then replace the icon based on community feedback. This icon may remain a lingering controversy for a long time—it’s hard to satisfy everyone.

@ViniDevBR
Copy link
Copy Markdown
Contributor

Hi @ViniDevBR, you could read more on #2773, the other guys don't like the original one. We were trying a new icon. No success until now as you can see.

You say "We were"...
Who is?

This is 7 months STOPPED. Nobody is trying nothing.

This is simple guys. Im new here but think with me.
Why we need to LIKE the icon? Who created the lib maked an icon.
Why we couldnt respect the original?

and... Why dont release the original and if the people dont like we change. But now it's stopped 7 months because people dont like? Impossible to satisfy everyone.

Im using this during 3 years and there is a lot of ORIGINAL ICONS and this need to be different because people dont like?
and looking with the eyes of the owner from lint-staged. Would like to see the original or another icon?

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Aug 14, 2025

@ViniDevBR Please keep your tone respectful toward maintainers. Comments like yours raise red flags.

“We were” refers to myself and other contributors working in our free time to keep this project aligned with our design standards. Saying “nobody is trying” ignores the ongoing work visible in our PRs and issues regarding other icons and requests.

We don’t include all original icons — they must fit the Material Design style. The lint-staged icon doesn’t meet our quality standards; if you disagree, you can raise it with the project itself: lint-staged/lint-staged#606. You can also use a different icon theme or add a custom icon as documented here: https://github.com/material-extensions/vscode-material-icon-theme?tab=readme-ov-file#custom-svg-icons. Or you can suggest another icon or an alternative abstraction of the original logo which can go along with the Material Design look and feel.

Further disrespectful comments will lead to a permanent ban.

@PKief
Copy link
Copy Markdown
Member Author

PKief commented Aug 14, 2025

I think we can release a version based on the official icon first, and then replace the icon based on community feedback. This icon may remain a lingering controversy for a long time—it’s hard to satisfy everyone.

That's actually true, we can't satisfy everyone. But at the same time we're not aiming to simply show any random original icon for every possible file only to just have something. Our goal is that it looks good and the icons should fit together. And for the lintstaged config files we still show our default icons - it's not like if we wouldn't show anything there:

image

@ViniDevBR
Copy link
Copy Markdown
Contributor

ViniDevBR commented Aug 14, 2025

@ViniDevBR Please keep your tone respectful toward maintainers. Comments like yours raise red flags.

“We were” refers to myself and other contributors working in our free time to keep this project aligned with our design standards. Saying “nobody is trying” ignores the ongoing work visible in our PRs and issues regarding other icons and requests.

We don’t include all original icons — they must fit the Material Design style. The lint-staged icon doesn’t meet our quality standards; if you disagree, you can raise it with the project itself: lint-staged/lint-staged#606. You can also use a different icon theme or add a custom icon as documented here: https://github.com/material-extensions/vscode-material-icon-theme?tab=readme-ov-file#custom-svg-icons. Or you can suggest another icon or an alternative abstraction of the original logo which can go along with the Material Design look and feel.

Further disrespectful comments will lead to a permanent ban.

First, SORRY

But when i said “nobody is trying”, im saying about this icon and not about all.

and today im using the original one with custom svg icons...
but now i have a doubt...

How can we use a custom svg file inside .vscode in the project? Not the global vscode settings
just to all members of the team use the same icon

and lets go CONTINUE the discussion to accept one icon for this. Now i can say
nobody is discussing ABOUT THIS ICON

@PKief PKief force-pushed the feat/lint-staged-icons branch from 0829a87 to c47fcf9 Compare August 18, 2025 09:25
@PKief
Copy link
Copy Markdown
Member Author

PKief commented Aug 18, 2025

I came to the conclusion that this cancel icon without the turd in the background doesn't look that bad. It also fulfills the purpose that it kind of "cancels" a commit in case one of the conditions went wrong. We keep it without that turd and I personally see that as a way to go for that icon (I'm also frequent user of lintstaged and like that project):

image

@PKief PKief marked this pull request as ready for review August 18, 2025 09:31
Copy link
Copy Markdown
Member

@lucas-labs lucas-labs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, 🚫 is simple and serves the purpose just fine.
LGTM!

@PKief PKief merged commit 8175a51 into main Aug 18, 2025
9 checks passed
@PKief PKief deleted the feat/lint-staged-icons branch August 18, 2025 19:04
@github-actions
Copy link
Copy Markdown
Contributor

Merge Successful

Thanks for your contribution! 🎉

The changes will be part of the upcoming update on the Marketplace.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

icons PR with new icons

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Icon Request]: .lintstagedrc

7 participants